}
function init() {
- // Add some bindings to the global JS namespace; (gjs keeps the web
- // browser convention of having that namespace be called 'window'.)
- window.global = Shell.Global.get();
+ // Add some bindings to the global JS namespace
+ globalThis.global = Shell.Global.get();
- window.log = _loggingFunc;
+ globalThis.log = _loggingFunc;
- window._ = Gettext.gettext;
- window.C_ = Gettext.pgettext;
- window.ngettext = Gettext.ngettext;
- window.N_ = s => s;
+ globalThis._ = Gettext.gettext;
+ globalThis.C_ = Gettext.pgettext;
+ globalThis.ngettext = Gettext.ngettext;
+ globalThis.N_ = s => s;
GObject.gtypeNameBasedOnJSPath = true;
function _getAutoCompleteGlobalKeywords() {
const keywords = ['true', 'false', 'null', 'new'];
- // Don't add the private properties of window (i.e., ones starting with '_')
- const windowProperties = Object.getOwnPropertyNames(window).filter(
+ // Don't add the private properties of globalThis (i.e., ones starting with '_')
+ const windowProperties = Object.getOwnPropertyNames(globalThis).filter(
a => a.charAt(0) != '_'
);
const headerProperties = JsParse.getDeclaredConstants(commandHeader);
function start() {
// These are here so we don't break compatibility.
- global.logError = window.log;
- global.log = window.log;
+ global.logError = globalThis.log;
+ global.log = globalThis.log;
// Chain up async errors reported from C
global.connect('notify-error', (global, msg, detail) => {
ARGV: readonly
Debugger: readonly
GIRepositoryGType: readonly
+ globalThis: readonly
imports: readonly
Intl: readonly
log: readonly
logError: readonly
print: readonly
printerr: readonly
- window: readonly
parserOptions:
ecmaVersion: 2019
function initEnvironment() {
// Monkey-patch in a "global" object that fakes some Shell utilities
// that ExtensionUtils depends on.
- window.global = {
+ globalThis.global = {
log(...args) {
print(args.join(', '));
},